草庐IT

ML 方法

全部标签

c# - 如何将 EventHandler 作为方法参数传递

我正在尝试编写一个也将处理点击事件的通用方法,并且我希望允许用户将他自己的方法作为点击事件传递。像这样:publicstaticvoidBuildPaging(ControlpagingControl,shortcurrentPage,shorttotalPages,???){for(inti=0;i我知道这是可能的,但我不记得怎么做... 最佳答案 只需使用事件处理程序的类型作为参数类型:publicstaticvoidBuildPaging(ControlpagingControl,shortcurrentPage,shortt

c# - NSubstitute 模拟一个没有参数的 void 方法

我是NSubstitute的新手,我正在尝试使用2个out参数模拟一个void方法,我很确定我做错了。我有一个CustomerDataAccess类,它的方法具有以下签名:voidGetCustomerWithAddresses(intcustomerId,outListcustomers,outListaddresses);CustomerRepository调用其GetCustomer方法,然后调用CustomerDataAccess.GetCustomerWithAddressesDAL方法。DAL方法然后输出两个out参数,一个用于客户,一个用于地址。存储库方法然后使用Auto

c# - 为什么此方法返回 double.PositiveInfinity 而不是 DivideByZeroException?

我在VS2015C#交互中运行了以下代码片段,得到了一些非常奇怪的行为。>doubledivide(doublea,doubleb).{.try.{.returna/b;.}.catch(DivideByZeroExceptionexception).{.thrownewArgumentException("Argumentbmustbenonzero.",exception);.}.}>divide(3,0)Infinity>3/0(1,1):errorCS0020:Divisionbyconstantzero>varb=0;>3/bAttemptedtodividebyzero.>

c# - 静态方法中的变量共享

我对静态方法中的变量有疑问。静态方法中的变量是否共享相同的内存位置,还是它们会有单独的内存?这是一个例子。publicclassXYZ{PublicStaticintA(intvalue){intb=value;returnb;}}如果3个不同的用户调用执行方法AXYZ.A(10);XYZ.A(20);XYZ.A(30);同时。每次调用的返回值是多少?XYZ.A(10)=?XYZ.A(20)=?XYZ.A(30)=? 最佳答案 它们仍然是局部变量——它们不在线程之间共享。它们在静态方法中这一事实没有任何区别。如果你使用一个静态变量作

c# - 将锯齿状数组的值克隆到第二个数组中的极快方法?

我目前正在开发一个应用程序,该应用程序负责计算锯齿状数组的随机排列。目前,应用程序中的大部分时间都花在每次迭代中复制数组上(总共100万次迭代)。在我当前的系统上,整个过程需要50秒才能完成,其中39秒用于克隆阵列。我的阵列克隆程序如下:publicstaticint[][]CopyArray(thisint[][]source){int[][]destination=newint[source.Length][];//ForeachRowfor(inty=0;y有没有安全或不安全的方法可以更快地达到与上述相同的效果? 最佳答案 这

c# - 在 string.Split() 之后有更好的 TRIM() 方法吗?

注意到一些代码,例如string[]ary=parms.Split(",".ToCharArray(),StringSplitOptions.RemoveEmptyEntries);for(inti=0;i工作正常,但想知道是否有更好的方法一步完成 最佳答案 string[]trimmedStrings=parms.Split(',').Select(s=>s.Trim()).Where(s=>s!=String.Empty).ToArray();顺便说一句,考虑使用像List这样的通用类型列表而不是遗留数组IListtrimmed

c# - 从事件处理程序在主线程中执行一个方法

我有一个继承自Queue类的自定义Queue类。它有一个事件ItemAdded。在此事件的事件处理程序中,我正在执行一个方法。但是它在主线程之外运行,尽管我希望它在主线程中运行。我不知道该怎么做。有什么建议吗?//MycustomclassusingSystem;usingSystem.Collections;//Requiredtoinheritnon-genericQueueclass.namespaceQueueWithEvent{publicclassSmartQueue:Queue{publicdelegatevoidItemAddedEventHandler(objects

c# - 在 BackGroundWorker 中运行方法并显示 ProgressBar

我想要的是,当某些方法正在执行某些任务时,UI会保持自身处于事件状态,并且我想在进度条中显示工作进度。我有一个方法,一个BackGroundWorker和一个Progressbar。我想在BackGroundWorker开始运行时调用该方法并显示进度。该方法包含一个循环。因此,它可以报告进度。那么,可以做什么呢?privatevoidForm1_Load(objectsender,EventArgse){//TODO:Thislineofcodeloadsdataintothe'dataSet1.TBLMARKET'table.Youcanmove,orremoveit,asneede

c# - 如何在 PowerShell 中创建具有行为(方法)的真实对象?

可能这个问题以前有人回答过....但我还没有找到满足我需求的具体答案。顺便说一句,我正在使用PowerShell3嗯,我是PowerShell的新手,但作为C#开发人员我有很多经验,所以使用对象对我来说非常重要。所以我想知道是否有一种干净的方式在PowerShell脚本中应用OOP概念(当然不是全部,尽管那会很棒),因为例如,我想做一些具体的事情。注意:我知道我可以在PowerShell中编写C#代码来创建DTO,而且我可以在C#中创建PowerShell二进制模块,我过去曾这样做过,但我正在寻找的是现在能够在PowerShell中以面向对象的方式编写我的所有代码。我想做的事情:在Po

c# - 为什么异步委托(delegate)方法需要调用 EndInvoke?

为什么委托(delegate)需要在方法触发之前调用EndInvoke?如果我需要调用EndInvoke(它会阻塞线程)那么它不是真正的异步调用吗?这是我要运行的代码。classProgram{privatedelegatevoidGenerateXmlDelegate();staticvoidMain(string[]args){GenerateXmlDelegateworker=newGenerateXmlDelegate(GenerateMainXml);IAsyncResultresult=worker.BeginInvoke(null,null);}privatestatic